#ifndef _MUTABLE_CONTAINER_HPP_
#define _MUTABLE_CONTAINER_HPP_
#include <sstream>
#include <iostream>
using namespace std;
/* 类模板，接口类 */
template <typename E>
class MutableContainer
{
public:
    /* 在末尾添加元素 */
    virtual void add(E ele) = 0;
    /* 在指定下标添加一个元素 */
    virtual void add(int index, E ele) = 0;
    /* 按照下标删除元素 */
    virtual E remove(int index) = 0;
    /* 按照元素进行删除 */
    virtual bool removeElement(E ele) = 0;
    /* 清空容器 */
    virtual void clear() = 0;
    /* 通过下标修改元素 */
    virtual E set (int index, E ele) = 0;
    /* 通过下标获取元素 */
    virtual E get(int index) = 0;
    /* 排序 */
    virtual void sort() = 0;
    /* 查找元素出现的下标 */
    virtual int index(E ele) = 0;
    /* 将容器中的元素拼接成字符串 */
    virtual string str() = 0;    
    /* 获取容器中的元素个数 */
    virtual int length() = 0;
    
    virtual ~MutableContainer() {};
};




#endif